package com.elitetyc.eliteim.common.handler;

import com.elitetyc.eliteim.common.proto.RequestProto;
import io.netty.channel.ChannelHandlerContext;

/**
 * 消息处理器
 * @param <T>
 */
public interface RequestMsgHandler<T> {

    /**
     * 是否支持转换
     * @param type
     * @return
     */
    boolean support(int type);
    /**
     *
     * @param ctx
     * @param source
     * @param msg
     */

    void handleMsg(ChannelHandlerContext ctx, RequestProto.RequestProtocol source, T msg);

    /**
     * 将protobuf转为指定对象数据
     * @param source
     * @return
     */
    T convertProto2Msg(RequestProto.RequestProtocol source);
}
